欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

什么是反向代理?反向代理服務(wù)器是位于后端服務(wù)器前面的中間連接點(diǎn),它將客戶端請(qǐng)求路由到這些服務(wù)器,并確保沒(méi)有客戶端直接與后端通信。這與轉(zhuǎn)發(fā)代理不同,在轉(zhuǎn)發(fā)代理中,代理位于客戶端前面,并充當(dāng)客戶端和源服務(wù)器之間的中介。反向代理就像一個(gè)實(shí)際的端點(diǎn),為您的系統(tǒng)提供額外的安全和控制層。

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

有哪些反向代理用例?

反向代理是基本的系統(tǒng)管理概念之一,可以幫助您提高系統(tǒng)的可伸縮性、性能、彈性和安全性。讓我們來(lái)看看一些最流行的反向代理用例。

  • 負(fù)載平衡。反向代理可以充當(dāng)負(fù)載平衡器,在不同服務(wù)器池之間分配傳入請(qǐng)求。它可能使用循環(huán)法、最少連接數(shù)、最少響應(yīng)時(shí)間或其他一些算法來(lái)路由傳入請(qǐng)求并使您的整個(gè)系統(tǒng)更快、更有彈性。如果服務(wù)器出現(xiàn)故障,您的反向代理負(fù)載平衡器會(huì)將流量重定向到其余的在線服務(wù)器。
  • 匿名。反向代理在將所有請(qǐng)求傳輸?shù)胶蠖朔?wù)器之前攔截所有請(qǐng)求。這樣你的后端服務(wù)器永遠(yuǎn)不需要透露他們的 IP 地址,只能通過(guò)反向代理訪問(wèn),這使得直接攻擊它們變得更加困難。
  • 交通清洗。反向代理服務(wù)器可能安裝了一些流量控制機(jī)制來(lái)過(guò)濾惡意或不需要的請(qǐng)求并防止它們到達(dá)您的后端服務(wù)。您可以使用防火墻、防病毒系統(tǒng)或任何其他應(yīng)用程序內(nèi)容檢查機(jī)制來(lái)加強(qiáng)系統(tǒng)安全性。
  • 緩存。反向代理服務(wù)器可以存儲(chǔ)經(jīng)常訪問(wèn)的靜態(tài)或動(dòng)態(tài) Web 內(nèi)容,以更快地提供服務(wù)并減輕后端服務(wù)器的負(fù)載。
  • SSL 加密。加密和解密 TLS 流量的計(jì)算量很大。反向代理可以負(fù)責(zé) SSL 加密,以減輕后端服務(wù)器的工作負(fù)擔(dān)。
  • 內(nèi)容壓縮。使用反向代理,您可以壓縮入站和出站數(shù)據(jù),使客戶端和后端服務(wù)器之間的通信更快。
  • A/B 測(cè)試。A/B 測(cè)試可以在瀏覽器、Web 應(yīng)用程序或后端層上執(zhí)行。使用反向代理,您可以實(shí)施后端層 A/B 測(cè)試并將傳入流量隨機(jī)分配到運(yùn)行不同版本應(yīng)用程序的服務(wù)器。

先決條件

在我們開始之前,您需要:

  • 使用 sudo 權(quán)限訪問(wèn) Linux 服務(wù)器。我們將使用 Ubuntu 20.04,但您可以選擇不同的發(fā)行版。
  • 指向您的服務(wù)器 IP 地址的域名,用于配置 SSL 證書。您可以使用每臺(tái)服務(wù)器免費(fèi)提供的自定義 Cherry Servers 子域名。

安裝阿帕奇

在本指南中,我們將使用 Apache Web 服務(wù)器來(lái)創(chuàng)建反向代理的工作概念。Apache 帶有一些方便的擴(kuò)展模塊,支持反向代理解決方案。
首先,連接到您的服務(wù)器并從 APT 存儲(chǔ)庫(kù)更新本地包索引:

sudo apt update

現(xiàn)在讓我們apache2從官方 Ubuntu 20.04 存儲(chǔ)庫(kù)安裝軟件包:

sudo apt install -y apache2

安裝完成后,您可以通過(guò)檢查其版本來(lái)驗(yàn)證 Apache 是否已安裝:

apache2 -version

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

也可以apache2使用以下命令檢查狀態(tài):

sudo systemctl status apache2

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

如您所見(jiàn),apache2 在您安裝后立即處于活動(dòng)狀態(tài)并正在運(yùn)行。您可以通過(guò)請(qǐng)求默認(rèn)的 Apache 索引頁(yè)面來(lái)執(zhí)行抽查以驗(yàn)證它是否按預(yù)期工作。只需在網(wǎng)絡(luò)瀏覽器中輸入服務(wù)器的 IP 地址,然后按回車鍵:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

如果您不知道自己的 IP 地址,請(qǐng)使用以下命令獲取它:

hostname -I

此命令將顯示計(jì)算機(jī)上可用的所有網(wǎng)絡(luò)接口上的所有已配置 IP 地址,包括公共網(wǎng)絡(luò)接口的 IP 地址。

為反向代理啟用 Apache 模塊

要將反向代理與 Apache Web Server 一起使用,您需要啟用特定的 Apache 模塊以支持反向代理服務(wù)器所需的附加功能。我們的場(chǎng)景需要以下模塊:

  • mod_proxy:它是 Apache 的主要代理模塊,用于管理連接和重定向它們。它允許 Apache 充當(dāng)?shù)讓雍蠖朔?wù)器的網(wǎng)關(guān)。該模塊對(duì)于所有反向代理場(chǎng)景都是必需的。
  • mod_proxy_http:此模塊依賴于 mod_proxy 并且需要支持對(duì)代理服務(wù)器的 HTTP 和 HTTPS 請(qǐng)求。
  • mod_ssl:該模塊為 Apache HTTP 服務(wù)器提供 SSL v3 和 TLS v1.x 協(xié)議支持。

現(xiàn)在讓我們使用a2enmod命令啟用這些模塊:

sudo a2emod proxy && sudo a2enmod proxy_http && a2enmod ssl

每次啟用新的 Apache 模塊時(shí),不要忘記重新啟動(dòng) apache2 服務(wù)器:

sudo systemctl restart apache2

您可以使用以下命令驗(yàn)證這些模塊是否處于活動(dòng)狀態(tài):

apache2ctl -M

配置 Apache 反向代理

現(xiàn)在是時(shí)候配置 Apache 反向代理以接受來(lái)自 Internet 的請(qǐng)求并將它們轉(zhuǎn)發(fā)到您選擇的資源。您可以將反向代理請(qǐng)求轉(zhuǎn)發(fā)到任何您想要的地方,包括其他服務(wù)器,但我們將使用本地網(wǎng)絡(luò)用于教育目的。

000-default.conf首先,讓我們使用以下命令禁用默認(rèn)的 Apache 虛擬主機(jī)配置文件:

sudo a2dissite 000-default.conf

現(xiàn)在使用以下配置文本cherry.conf在目錄中創(chuàng)建一個(gè)新的虛擬主機(jī)配置文件:/etc/apache2/sites-available

<VirtualHost *:80>
    ServerName site1.com
    ServerAlias www.site1.com 
    ServerAdmin postmaster@site1.com
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    ProxyRequests Off

</VirtualHost>

<VirtualHost>我們使用包含 IP 地址和 Apache 為該虛擬主機(jī)接受的端口號(hào)的命令開始我們的配置文件。在這種情況下使用元字符*,因?yàn)樗?IP 地址都被接受,而端口號(hào)80代表默認(rèn)的 HTTP 端口。配置繼續(xù)以下項(xiàng)目:

  • ServerName:定義與服務(wù)器關(guān)聯(lián)的域名。/etc/hosts如果您想通過(guò)關(guān)聯(lián)的域名訪問(wèn)您的服務(wù)器,您可以通過(guò) DNS 在 Internet 上配置它或通過(guò)文件在本地設(shè)置它。
  • ServerAlias:允許您定義將被服務(wù)器接受的其他名稱。
  • ServerAdmin:服務(wù)器在返回給客戶端的錯(cuò)誤消息中包含的聯(lián)系人電子郵件地址。
  • ErrorLog:設(shè)置 Apache 用來(lái)存儲(chǔ)它遇到的任何錯(cuò)誤的文件的名稱。
  • CustomLog:設(shè)置 Apache 用于將客戶端請(qǐng)求記錄到服務(wù)器的文件的名稱。
  • ProxyPass:將遠(yuǎn)程服務(wù)器映射到本地服務(wù)器的空間。定義流量重定向的目標(biāo)地址。
  • ProxyPassReverse:代理服務(wù)器不僅可以接收請(qǐng)求,還可以將響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)回客戶端。命令用代理服務(wù)器的信息重寫后端服務(wù)器的ProxyPassReverse原始location和HTTP 響應(yīng)標(biāo)頭。這對(duì)于避免繞過(guò)反向代理并將后端服務(wù)器與 Internet 隔離至關(guān)重要。content-locationuri
  • ProxyRequests:防止 Apache HTTP 服務(wù)器被用作轉(zhuǎn)發(fā)代理并使其更安全。ProxyRequests使用時(shí)通常應(yīng)將該命令設(shè)置為關(guān)閉ProxyPass。

保存配置文件并使用以下命令啟用新的虛擬主機(jī):

sudo a2ensite cherry.conf

配置完成后,不要忘記重新啟動(dòng) apache2 以激活更改:

sudo systemctl restart apache2

配置 Flask 應(yīng)用程序

您的反向代理配置現(xiàn)已完成,但我們?nèi)匀蝗鄙僖粋€(gè)將在端口 8080 上偵聽的 Web 應(yīng)用程序,因?yàn)槲覀兊腜roxyPass指令將傳入請(qǐng)求轉(zhuǎn)發(fā)到此目的地。
為此,我們可以使用一個(gè)簡(jiǎn)單的 Flask 應(yīng)用程序。讓我們先安裝 python3 和 pip 包管理器:

sudo apt install python3 python3-pip

安裝完成后,繼續(xù)通過(guò)pip安裝Flask:

pip3 install flask

現(xiàn)在我們準(zhǔn)備創(chuàng)建一個(gè)簡(jiǎn)單的 Flask Web 應(yīng)用程序。讓我們稱之為app.py:

vim app.py

在下面的 Python 代碼中,我們導(dǎo)入 Flask 庫(kù),實(shí)例化 Flask 應(yīng)用程序并在“/”路由上調(diào)用 index() 函數(shù):

from flask import Flask

app = Flask(__name__)

@app.route(“/”)
def index():
return “Apache reverse proxy is working!”

將 Python 腳本保存在您的工作目錄中,并將 FLASK_APP 環(huán)境變量設(shè)置為 app.py,以便 Flask 知道在哪里實(shí)例化您的 Web 應(yīng)用程序:

FLASK_APP=app.py

現(xiàn)在您已準(zhǔn)備好運(yùn)行您的 Flask 應(yīng)用程序。讓我們通過(guò)將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到文件來(lái)作為后臺(tái)作業(yè)在端口 8080 上運(yùn)行它/dev/null以保持我們的終端清潔:

flask run --port=8080 > /dev/null 2 > &1 &

現(xiàn)在打開瀏覽器并嘗試通過(guò)標(biāo)準(zhǔn) HTTP 80 端口連接到您的 IP 地址:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

您剛剛向 IP 地址上的端口 80 發(fā)送了一個(gè) HTTP GET 請(qǐng)求,并且您的請(qǐng)求已被 Apache 反向代理轉(zhuǎn)發(fā)到端口 8080,您的 Flask 應(yīng)用程序在此處發(fā)回響應(yīng)。恭喜,您的 Apache 反向代理配置正在運(yùn)行!

配置 SSL 證書

通常,您希望對(duì)您的應(yīng)用程序流量進(jìn)行 SSL 加密。您可以使用免費(fèi)的 Let's Encrypt TLS 證書使用 Apache 反向代理配置 SSL/TLS 加密。
首先,安裝允許您自動(dòng)頒發(fā)和安裝證書的 Certbot ACME 客戶端:

sudo apt install certbot

接下來(lái),為 Certbot 安裝 Apache 插件以簡(jiǎn)化安裝過(guò)程:

sudo apt install python3-certbot-apache

Let's Encrypt 不會(huì)為沒(méi)有域名的服務(wù)器頒發(fā) TLS 證書。要繼續(xù)配置證書,您需要從任何域名提供商處購(gòu)買域名并將其指向您服務(wù)器的 IP 地址。或者,您可以使用自定義 DNS 名稱,該名稱可以在 Cherry Servers 為每臺(tái)服務(wù)器設(shè)置。

為此,請(qǐng)轉(zhuǎn)到您的客戶端,訪問(wèn)服務(wù)器的網(wǎng)絡(luò)選項(xiàng),然后按管理 IP 上的“編輯地址”按鈕:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

您現(xiàn)在可以輸入自定義 DNS 名稱并按更新:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

這樣做之后,子域名reverse-proxy.cloud.cherryservers.net將可用于您的服務(wù)器。您現(xiàn)在可以使用此子域名而不是 IP 地址來(lái)查詢它:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

您還應(yīng)該將此子域名添加到您的 cherry.conf 配置文件中:

<VirtualHost *:80>
	ServerName cherry.com
	ServerAlias www.cherry.com reverse-proxy.cloud.cherryservers.net
	[…]
</VirtualHost>

現(xiàn)在您可以使用以下命令開始 TLS 證書配置:

sudo certbot --apache

首先,您將被要求輸入您將接收續(xù)訂和安全通知的電子郵件地址:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

接下來(lái),您需要閱讀并同意 Let's Encrypt 服務(wù)條款:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

決定您是否愿意接收來(lái)自 Let's Encrypt 的新聞和產(chǎn)品更新:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

Certbot 將自動(dòng)從您的 Apache 虛擬主機(jī)配置文件中讀取 ServerName 和 ServerAlias 變量。選擇要用于 HTTPS 查詢的正確域名并繼續(xù)安裝:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

Certbot 現(xiàn)在將為 SSL 連接創(chuàng)建一個(gè)新的 Apache 虛擬主機(jī)并為您生成證書。
最后,系統(tǒng)會(huì)詢問(wèn)您是否要自動(dòng)將所有 HTTP 流量重定向到 HTTPS。為了簡(jiǎn)單起見(jiàn),選擇No redirect:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

就是這樣——您現(xiàn)在擁有一個(gè)功能齊全的 Apache 反向代理,帶有 SSL 加密!您現(xiàn)在可以通過(guò)安全的 HTTPS 連接訪問(wèn)您的 Web 代理服務(wù)器:

如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

?專業(yè)提示:您可以通過(guò)在一行中使用 Certbot 和一些強(qiáng)制參數(shù)來(lái)進(jìn)一步簡(jiǎn)化 TLS 證書安裝:

sudo certbot --apache --non-interactive --agree-tos -m mantas.levinas@cherryservers.com -d reverse-proxy.cloud.cherryservers.net

如果您想更深入地了解 Certbot 做了什么,請(qǐng)隨時(shí)查看新創(chuàng)建的 Apache 虛擬主機(jī):

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName cherry.com
    ServerAlias www.cherry.com reverse-proxy.cloud.cherryservers.net
    ServerAdmin mantas.levinas@cherryserers.com
    ErrorLog ${APACHE_LOG_DIR}/erro.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPass / http://127.0.0.1:8080/
    ProxyPassReverse / http://127.0.0.1:8080/
    ProxyRequests Off

	SSLCertificateFile /etc/letsencrypt/live/reverse-proxy.cloud.cherryservers.net/fullchain.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/reverse-proxy.cloud.cherryservers.net/privkey.pem
	Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

您可以看到 Apache 檢查您是否有可用的 mod_ssl,如果有,它會(huì)使用給定的虛擬主機(jī)配置來(lái)接受通常為 HTTPS 流量保留的端口 443 上的所有 IP 地址。

虛擬主機(jī)幾乎是我們?cè)寂渲玫母北荆琧herry.conf但多了三行。它包括對(duì) SSL 證書文件的引用并導(dǎo)入 SSL 配置文件以使用一些必需的 SSL 設(shè)置來(lái)補(bǔ)充您的虛擬主機(jī)配置。

結(jié)論

在本文中,我們了解了什么是反向代理及其使用方法。我們還建立了 Apache 反向代理的工作概念,使用 SSL 加密來(lái)提供額外的安全層。您可以使用 Apache Web Server 構(gòu)建更多的反向代理用例,所以請(qǐng)不要猶豫,在Apache 官方文檔頁(yè)面上了解更多關(guān)于這個(gè)基本系統(tǒng)工程概念的信息。

文章鏈接: http://m.qzkangyuan.com/13376.html

文章標(biāo)題:如何使用SSL/TLS加密安裝和配置Apache反向代理服務(wù)器

文章版權(quán):夢(mèng)飛科技所發(fā)布的內(nèi)容,部分為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明來(lái)源,網(wǎng)絡(luò)轉(zhuǎn)載文章如有侵權(quán)請(qǐng)聯(lián)系我們!

聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
IDC云庫(kù)

如何選擇和注冊(cè)域名

2022-11-28 14:25:32

IDC云庫(kù)

如何在Ubuntu 20.04上安裝Linux、Apache、MySQL和PHP(LAMP堆棧)?

2022-11-28 16:12:38

0 條回復(fù) A文章作者 M管理員
    暫無(wú)討論,說(shuō)說(shuō)你的看法吧
?
個(gè)人中心
購(gòu)物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 湘阴县| 琼海市| 石首市| 微博| 闻喜县| 秦安县| 河源市| 锡林郭勒盟| 渭源县| 商河县| 巫溪县| 彝良县| 嘉黎县| 营山县| 东兰县| 和龙市| 南靖县| 佛学| 广西| 高州市| 石屏县| 社旗县| 开原市| 凌云县| 慈溪市| 攀枝花市| 峨眉山市| 隆林| 彩票| 沙湾县| 通许县| 延安市| 颍上县| 鲁甸县| 洛隆县| 揭西县| 泸水县| 汝州市| 霞浦县| 伽师县| 化隆|